package com.yunxi.model.customer;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.yunxi.core.web.DateJsonDeserializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 客户信息
 * </p>
 *
 * @author 
 * @since 2019-05-09
 */
@Data
@EqualsAndHashCode(callSuper = false)

@TableName("pms_customer")
@ApiModel(value="Customer对象", description="客户信息")
public class Customer implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "CUSTOMER_ID", type = IdType.UUID)
    private String customerId;

    @ApiModelProperty(value = "客户编号CRM")
    @TableField("CUSTOMER_NO")
    private String customerNo;

    @ApiModelProperty(value = "客户姓名")
    @TableField("NAME")
    private String name;

    @ApiModelProperty(value = "性别(Sex_Type,1男,2女)")
    @TableField("SEX")
    private String sex;

    @ApiModelProperty(value = "生日")
    @TableField("BIRTH_DAY")
    @JsonDeserialize(using = DateJsonDeserializer.class)
    private Date birthDay;

    @ApiModelProperty(value = "购买性质(Customer_BuyNature,1首购,2增购,3换购)")
    @TableField("BUY_NATURE")
    private String buyNature;

    @ApiModelProperty(value = "电话")
    @TableField("PHONE")
    private String phone;

    @ApiModelProperty(value = "手机")
    @TableField("TELEPHONE")
    private String telephone;

    @ApiModelProperty(value = "省")
    @TableField("PROVINCE")
    private String province;

    @ApiModelProperty(value = "市")
    @TableField("CITY")
    private String city;

    @ApiModelProperty(value = "区")
    @TableField("REGION")
    private String region;

    @ApiModelProperty(value = "地址")
    @TableField("ADDR")
    private String addr;

    @ApiModelProperty(value = "证件号")
    @TableField("ID_CERT_NO")
    private String idCertNo;

    @ApiModelProperty(value = "证件类型")
    @TableField("ID_CERT_TYPE")
    private Integer idCertType;

    @ApiModelProperty(value = "客户来源(Customer_source,1线索领取,2销售助手录入,3URM推送)")
    @TableField("SOURCE")
    private Integer source;

    @ApiModelProperty(value = "邮箱")
    @TableField("EMAIL")
    private String email;

    @ApiModelProperty(value = "经销商编号")
    @TableField("PARTNER_CODE")
    private String partnerCode;

    @ApiModelProperty(value = "客户类型(1-企业法人,2-自然人,3-政府机构,4-事业单位)")
    @TableField("CUSTOMER_TYPE")
    private String customerType;

    @ApiModelProperty(value = "国家")
    @TableField("COUNTRY")
    private String country;

    @ApiModelProperty(value = "购车人")
    @TableField("BUYER")
    private String buyer;

    @ApiModelProperty(value = "使用人")
    @TableField("USER_")
    private String user;

    @ApiModelProperty(value = "主要联系人")
    @TableField("BUYER_LINKMAN")
    private String buyerLinkman;

    @ApiModelProperty(value = "主要联系人职务")
    @TableField("BUYER_JOB")
    private String buyerJob;

    @ApiModelProperty(value = "手机不要存区号")
    @TableField("BUYER_PHONE")
    private String buyerPhone;

    @ApiModelProperty(value = "主要联系人电子邮件")
    @TableField("BUYER_EMAIL")
    private String buyerEmail;

    @ApiModelProperty(value = "其他联系人")
    @TableField("USER_LINKMAN")
    private String userLinkman;

    @ApiModelProperty(value = "其他联系人职务")
    @TableField("USER_JOB")
    private String userJob;

    @ApiModelProperty(value = "其他联系人电话")
    @TableField("USER_PHONE")
    private String userPhone;

    @ApiModelProperty(value = "其他联系人电子邮件")
    @TableField("USER_EMAIL")
    private String userEmail;

    @ApiModelProperty(value = "企业名称")
    @TableField("ENT_NAME")
    private String entName;

    @ApiModelProperty(value = "企业类型")
    @TableField("ENT_TYPE")
    private String entType;

    @ApiModelProperty(value = "是否大客户")
    @TableField("CUSTOMER_CATALOG")
    private Integer customerCatalog;

    @ApiModelProperty(value = "主营业务")
    @TableField("MAIN_BUSINESS")
    private String mainBusiness;

    @ApiModelProperty(value = "购车用途")
    @TableField("PURPOSE")
    private String purpose;

    @ApiModelProperty(value = "备注")
    @TableField("MEMO")
    private String memo;

    @ApiModelProperty(value = "跟进前客户级别(Customer_IntentionLevel,1O,2H,3A,4B,5C,6其他,7战败)")
    @TableField("LEVEL")
    private String level;

    @ApiModelProperty(value = "QQ")
    @TableField("QQ")
    private String qq;

    @ApiModelProperty(value = "购车预算")
    @TableField("BUDGET")
    private String budget;

    @ApiModelProperty(value = "喜欢的沟通方式")
    @TableField("COMMUNICATION")
    private String communication;

    @ApiModelProperty(value = "爱好")
    @TableField("INTERESTS")
    private String interests;

    @ApiModelProperty(value = "付款方式")
    @TableField("PAY_TYPE")
    private String payType;

    @ApiModelProperty(value = "与使用者关系")
    @TableField("USER_RELATE")
    private String userRelate;

    @ApiModelProperty(value = "订单客户类型")
    @TableField("ORDER_CUSTOMER_TYPE")
    private Integer orderCustomerType;

    @ApiModelProperty(value = "是否有车位")
    @TableField("IS_PLACE")
    private Integer isPlace;

    @ApiModelProperty(value = "是否安装充电桩")
    @TableField("IS_CHARGE")
    private Integer isCharge;

    @ApiModelProperty(value = "是否有购车资格")
    @TableField("IS_CAN_BUY")
    private Integer isCanBuy;

    @ApiModelProperty(value = "车系")
    @TableField("SERIES_ID")
    private String seriesId;

    @ApiModelProperty(value = "车型")
    @TableField("CATALOG_ID")
    private String catalogId;

    @ApiModelProperty(value = "内饰颜色")
    @TableField("COLOR_ID_IN")
    private String colorIdIn;

    @ApiModelProperty(value = "外饰颜色")
    @TableField("COLOR_ID_OUT")
    private String colorIdOut;

    @ApiModelProperty(value = "意向级别")
    @TableField("INTENTION_LEV")
    private Integer intentionLev;

    @ApiModelProperty(value = "客户状态  0意向 1订单 2战败 3基盘 4线索")
    @TableField("CUST_STATUS")
    private Integer custStatus;

    @ApiModelProperty(value = "创建人")
    @TableField(value = "CREATE_BY", fill = FieldFill.INSERT)
    private String createBy;

    @ApiModelProperty(value = "创建时间")
    @TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
    @JsonDeserialize(using = DateJsonDeserializer.class)
    private Date createTime;

    @ApiModelProperty(value = "修改时间")
    @TableField(value = "UPDATE_TIME", fill = FieldFill.UPDATE)
    @JsonDeserialize(using = DateJsonDeserializer.class)
    private Date updateTime;

    @ApiModelProperty(value = "修改人")
    @TableField(value = "UPDATE_BY", fill = FieldFill.UPDATE)
    private String updateBy;

    @ApiModelProperty(value = "跟进状态")
    @TableField("FOLLOW_STATUS")
    private Integer followStatus;

    @ApiModelProperty(value = "接触方式")
    @TableField("WAY")
    private String way;

    @ApiModelProperty(value = "跟进时间")
    @TableField("FOLLOW_TIME")
    private Date followTime;

    @ApiModelProperty(value = "跟进描述")
    @TableField("FOLLOW_DESC")
    private String followDesc;

    @ApiModelProperty(value = "计划跟进时间")
    @TableField("PLAN_FOLLOW_TIME")
    private Date planFollowTime;

    @ApiModelProperty(value = "计划跟进方式")
    @TableField("PLAN_FOLLOW_WAY")
    private String planFollowWay;

    @ApiModelProperty(value = "计划跟进描述")
    @TableField("PLAN_FOLLOW_DESC")
    private String planFollowDesc;

    @ApiModelProperty(value = "关注车型")
    @TableField("FOCUS_VEHICLE")
    private String focusVehicle;

    @ApiModelProperty(value = "驾驶车型")
    @TableField("DRIVER_VEHICLE")
    private String driverVehicle;

    @ApiModelProperty(value = "付款方式")
    @TableField("PAY_STYLE")
    private String payStyle;

    @ApiModelProperty(value = "竞品信息(Customer_Competitor)")
    @TableField("COMPETITOR_INFO")
    private String competitorInfo;

    @ApiModelProperty(value = "建卡渠道")
    @TableField("CREATE_MODE")
    private String createMode;

    @ApiModelProperty(value = "用户中台信息")
    @TableField("USERCENTER_INFO")
    private String usercenterInfo;

    @ApiModelProperty(value = "上次级别")
    @TableField("LAST_LEVEL")
    private Integer lastLevel;

    @ApiModelProperty(value = "信息获取途径")
    @TableField("GET_INFO_WAY")
    private String getInfoWay;

    @ApiModelProperty(value = "车配置")
    @TableField("CONFIGURATION")
    private String configuration;

    @ApiModelProperty(value = "销售顾问编号")
    @TableField("SALES_CONSULTANT_NO")
    private String salesConsultantNo;

    @ApiModelProperty(value = "年龄")
    @TableField("AGE")
    private Integer age;

    @ApiModelProperty(value = "邮编")
    @TableField("POSTCODE")
    private String postcode;

    @ApiModelProperty(value = "家庭电话")
    @TableField("HOME_PHONE")
    private String homePhone;


    @ApiModelProperty(value = "大区")
    private String bigRegion;

    @ApiModelProperty(value = "行业")
    private String profession;

    @ApiModelProperty(value = "职位")
    private String duty;

    @ApiModelProperty(value = "学历 0：未识别，1：高中，2：专科，3：本科，4：硕士，5：博士，6：其他")
    private Integer  education;

    @ApiModelProperty(value = "年收入")
    private BigDecimal annualIncome;

    @ApiModelProperty(value = "婚姻状态 0：未识别，1：已婚，2：未婚")
    private Integer  maritalStatus;

    @ApiModelProperty(value = "孩子数量")
    private Integer  childNum;

    @ApiModelProperty(value = "子女1的年龄")
    private Integer child1Age;

    @ApiModelProperty(value = "子女2的年龄")
    private Integer child2Age;

    @ApiModelProperty(value = "//购买意向 0,未识别 1,近3个月需要购车 2, 近半年内需要购车 3, 近1年内需要购车 4, 近2年内需要购车 5, 考虑要买车")
    private Integer purchaseIntention;

    @ApiModelProperty(value = "用车人员结构 0,未识别1,1人 2,2人 3,3人 4,4人5,5人 6,6人 7,7人 8,7人+")
    private Integer  vehiclePersonnelStructure;

    @ApiModelProperty(value = "用车场景 0, 未识别 1,上班 2, 家庭出行 3, 旅游自驾 4, 出租接客 100, 其他")
    private Integer  vehicleScene;

    @ApiModelProperty(value = "驾驶人 0, 未识别 1, 自己 2, 伴侣 3, 父母 4, 其他")
    private Integer  driver;

    @ApiModelProperty(value = "意向购车价格 1,10万以下 2,10-15万 3,15-20万 4,20-25万 5,25-30万 6,30万以上")
    private Integer  intentionalPurchasePrice;

    @ApiModelProperty(value = "服务敏感度 分为1-10等级")
    private Integer serviceSensitivity;

    @ApiModelProperty(value = "汽车知识专业度 分为1-10等级")
    private Integer  vehicleKnowledgeProfessional;

    @ApiModelProperty(value = "关注点")
    private String   carConcerns;

    @ApiModelProperty(value = "家庭车辆数量")
    private Integer  familyVehiclesNum;

    @ApiModelProperty(value = "家庭车辆品牌，多个使用逗号隔开")
    private String familyVehicleBrand;

    @ApiModelProperty(value = "销售售后类型区分;1.pms; 2.ups")
    @TableField("TENANT_ID")
    private String tenantId;

    @ApiModelProperty(value = "用户一级来源")
    @TableField("USERSOURCE_1")
    private Integer userSource_1;

    @ApiModelProperty(value = "用户二级来源")
    @TableField("USERSOURCE_2")
    private Integer userSource_2;

    @ApiModelProperty(value = "用户三级来源")
    @TableField("USERSOURCE_3")
    private String userSource_3;
}
